//
//  JGPresenttationController.swift
//  JGWB
//
//  Created by 付建国 on 2016/10/10.
//  Copyright © 2016年 sher. All rights reserved.
//

import UIKit

class JGPresenttationController: UIPresentationController {
    // MARK:- 对外提供属性
    var presentedFrame : CGRect = CGRect.zero
    
    
    fileprivate lazy var converView : UIView = UIView()
    
    //模态后的页面是放在containerView上的，可以通过查看分层看到在controller的view下还有一层view
    override func containerViewWillLayoutSubviews() {
        super.containerViewWillLayoutSubviews()
        //设置弹出view的尺寸
        presentedView?.frame = presentedFrame
        
        //添加蒙版
        setupCoverView()
    }

}
// MARK:- 设置UI界面相关
extension JGPresenttationController{
    fileprivate func setupCoverView(){
        
        // 添加蒙版
        containerView?.insertSubview(converView, at: 0)
        
        // 设置属性
        converView.backgroundColor = UIColor.init(white: 0.8, alpha: 0.2)
        // 注意：如果可选类型的值不存在，则？后边的代码不执行，此时converView.frame = nil
        // ?? 语法：当containerView存在是则对其解包，若不存在则将后面的CGRect.zero赋值给frame
        converView.frame = containerView?.bounds ?? CGRect.zero
        
        // 添加手势
        let tapGes = UITapGestureRecognizer.init(target: self, action: #selector(converViewClick))
        
        converView.addGestureRecognizer(tapGes)
        
    }
}

// MARK:- 事件监听
extension JGPresenttationController{
    @objc fileprivate func converViewClick(){
        
        presentedViewController.dismiss(animated: true, completion: nil)
    }
}













